package com.shujia

import scala.collection.mutable

object Demo11Set {
  def main(args: Array[String]): Unit = {
    /**
     * Set集合：会自动对元素进行去重，无序，一般情况下元素的类型都是相同的，不可变的
     */

    val set: Set[Int] = Set[Int](1, 2, 2, 3, 3, 3, 4, 4, 5, 7, 9, 8)
    println(set)

    /**
     * 集合常用的方法：
     * 集合与集合直接的运算：交集、并集、差集......
     */
    val set01 = Set(1, 2, 3, 4, 5)
    val set02 = Set(4, 5, 6, 7, 8)

    println(set01 & set02)
    println(set01 | set02)
    println(set01.diff(set02))
    println(set02.diff(set01))

    // 可变集合：HashSet
    val hashSet: mutable.HashSet[Int] = mutable.HashSet[Int](1, 2, 2, 3, 3, 4, 5)

    println(hashSet)

    // 增删改
    hashSet.add(5)
    hashSet.add(6)
    hashSet.add(2)
    println(hashSet)

    hashSet.remove(5)
    hashSet.remove(2)
    println(hashSet)

    // 修改元素不能直接用update，可以先remove再add
    hashSet.remove(3)
    hashSet.add(5)
    println(hashSet)

    // 判断元素是否存在
    println(set.contains(1))
    println(set.contains(100))
    println(hashSet.contains(100))
    println(hashSet.contains(100))


  }

}
